Skip to content

Fix FBX import normals to respect smoothing groups#114758

Draft
fire wants to merge 2 commits into
godotengine:masterfrom
V-Sekai:fix-ufbx-smooth-normals
Draft

Fix FBX import normals to respect smoothing groups#114758
fire wants to merge 2 commits into
godotengine:masterfrom
V-Sekai:fix-ufbx-smooth-normals

Conversation

@fire
Copy link
Copy Markdown
Member

@fire fire commented Jan 8, 2026

Generate normals based on FBX face_smoothing data:

  • Smooth faces share averaged normals across vertices
  • Faceted faces maintain hard edges
  • Preserves artist-defined smoothing behavior

Fixes: #114739

@fire fire force-pushed the fix-ufbx-smooth-normals branch 3 times, most recently from 130abf8 to d395ae4 Compare January 8, 2026 19:59
Generate normals based on FBX face_smoothing data:
- Smooth faces share averaged normals across vertices
- Faceted faces maintain hard edges
- Preserves artist-defined smoothing behavior
@fire
Copy link
Copy Markdown
Member Author

fire commented Jan 8, 2026

Feature request:

Kosyne found it convenient to be able to choose between calculating, importing or outright discarding smoothing group data.

@fire
Copy link
Copy Markdown
Member Author

fire commented Jan 9, 2026

Discussed with @bqqbarbhg

We think that ufbx is probably doing the "correct" thing here, but many things export hard edges unexpectedly.

So it's a good idea to default to what the fbx file says, or discarding smooth data or discarding hard edges or we can try recalculating (this pull request).

@AThousandShips AThousandShips added bug topic:import cherrypick:4.5 Considered for cherry-picking into a future 4.5.x release cherrypick:4.6 Considered for cherry-picking into a future 4.6.x release labels Jan 9, 2026
@AThousandShips AThousandShips added this to the 4.7 milestone Jan 9, 2026
Comment thread modules/fbx/fbx_document.cpp Outdated
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
@Repiteo Repiteo removed cherrypick:4.5 Considered for cherry-picking into a future 4.5.x release cherrypick:4.6 Considered for cherry-picking into a future 4.6.x release labels May 18, 2026
@Repiteo Repiteo modified the milestones: 4.7, 4.x May 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Development

Successfully merging this pull request may close these issues.

Importing fbx with ufbx in 4.5.1 is boxy on compatibility mode

3 participants